# --**coding:utf-8**--
# author:hemq
# date:20190801
# 封装操作excel

import xlrd
import uniout  # 解决list中 中文是unicode格式问题

filePath = './测试.xlsx'
data = xlrd.open_workbook(filePath)


def test():
    '''获取表'''
    tableName = data.sheet_names()  # 获取excel中所有的表名
    tableNameByIndex = data.sheet_by_index(0)  # 通过索引获取表
    tableNameByName = data.sheet_by_name(u'表一')  # 通过表名获取表

    '''获取行'''
    rows = tableNameByName.nrows  # 获取表中所有有效行数
    rowContent = tableNameByName.row(0)  # 获取某行中所有单元格内的数据，type:list
    rowContentWayTwo = tableNameByName.row_slice(0)  # 同上，获取某行中所有单元格内的数据，type:list
    rowContentWayThree = tableNameByName.row_values(0, start_colx=0, end_colx=None)  # 返回由该行中所有单元格的数据组成的列表  建议使用这个
    rowLen = tableNameByName.row_len(0)  # 返回该列的有效单元格长度
    # print tableNameByName.row_types(0, start_colx=0, end_colx=None)  # 返回由该行中所有单元格的数据类型组成的列表

    '''获取列'''
    ncols = tableNameByName.ncols  # 获取列表的有效列数
    ncolsContent = tableNameByName.col(1, start_rowx=0, end_rowx=None)  # 获取某列所有数据，type：list
    ncolsContentWayTwo = tableNameByName.col_slice(1, start_rowx=0, end_rowx=None)  # 获取某列所有数据，type：list
    # tableNameByName.col_types(1, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据类型组成的列表
    ncolsContentWayThree = tableNameByName.col_values(1, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据组成的列表  建议使用这个

    '''单元格操作'''
    cellContent = tableNameByName.cell(0, 1)  # 返回单元格对象
    cellType = tableNameByName.cell_type(0, 1)  # 返回单元格中的数据类型
    cellContentTwo = tableNameByName.cell_value(0, 1)  # 返回单元格中的数据 建议使用这个
    print cellContentTwo

    pass


if __name__ == '__main__':
    test()
